# list是可更改的数据类型，支持增删改查

course = ['机器学习', '数据结构', '操作系统', '计算机网络', '计算机组成原理', '计算机网络']
print(course)

# 增
# append insert extend
course.append('AI')  # append 在list末尾增加一个元素
print(course)
course.insert(1, '编译原理')  # insert(index, object), 在index处插入object
print(course)
course.extend(('数据挖掘', '云计算', '大数据'))  # extend(iterable) 将可迭代对象中的元素依次添加到list末尾
print(course)
course.extend('asd')  # 添加的是'a', 's', 'd'而不是'asd'
print(course)

# 删
# pop, remove, clear.  del
course.pop()
print(course)
course.pop(4)  # pop(index)删除指定下标元素，默认删除最后一个元素（栈顶元素）
print(course)
course.remove('a')  # Remove first occurrence of value.
# Raises ValueError if the value is not present.
print(course)
course.clear()  # 清空list
print(course)
course = ['机器学习', '数据结构', '操作系统', '计算机网络', '计算机组成原理', '计算机网络']
del course[2]  # del
print(course)

# 查询
# index, count, in, not in,
print(course.index('数据结构'))
# print(course.index('asd'))  # ValueError: 'asd' is not in list
print(course.count('计算机网络'))
print(course.count('asd'))
print('数据结构' in course)
print('asd' in course)

# 改
# 直接使用下标修改
course[2] = 'linux'
print(course)
